﻿/*
 * Created by SharpDevelop.
 * User: CeCi
 * Date: 28/03/2014
 * Time: 07:25 p.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Data;
using System.Linq.Expressions;
using Gestión_UTN.da;

namespace Gestión_UTN.blimpl
{
	/// <summary>
	/// Description of alumnoblimpl.
	/// </summary>
	public class alumnoblimpl: Gestión_UTN.bl.alumnobl
	{
		private static Gestión_UTN.da.alumnosda createAlumno = Gestión_UTN.factories.dafactory.createAlumno();
		private static Gestión_UTN.da.ciudadda createCiudad = Gestión_UTN.factories.dafactory.createCiudad();
		
		public alumnoblimpl()
		{
		}
		
		public bool SaveAlumno(Gestión_UTN.bo.Alumnobo alumno)
		{
			bool ingresado = false;
			
			try 
			{
				if (null != alumno) 
				{
					int codPostal = createCiudad.FindCiudadByNombre(alumno.Ciudad).CodPostal;
					
					ingresado = createAlumno.SaveAlumno(alumno.Dni,alumno.Nombre,alumno.Apellido,alumno.FechaNac,
					                                    alumno.Direccion,codPostal,alumno.Legajo);
				}
					
			} catch (Exception) {
				
				ingresado = false;
			}
			
			return ingresado;
		}
		
		public bool DeleteAlumno(int dni)
		{
			bool eliminado = false;
			
			try 
			{
				if (0 != dni)
				{
					eliminado = createAlumno.DeleteAlumno(dni);
					
				}
				
			} catch (Exception) {
				
				eliminado = false;
			}
			
			return eliminado;
		}
		
		public bool ModifyAlumno(int dni_anterior, Gestión_UTN.bo.Alumnobo alumno)
		{
			bool modificado = false;
			
			try 
			{
				if (0 != dni_anterior && null != alumno) 
				{
					int codPostal = createCiudad.FindCiudadByNombre(alumno.Ciudad).CodPostal;
					
					modificado = createAlumno.ModifyAlumno(dni_anterior,alumno.Dni,alumno.Nombre,
					                                       alumno.Apellido,alumno.FechaNac,alumno.Direccion,
					                                       codPostal,alumno.Legajo);
				}
				
			} catch (Exception) {
				
				modificado = false;
			}
			
			return modificado;
		}
		
		public System.Data.DataTable FindAllAlumnos()
		{
			DataTable tablaAlumnos = null;
			
			try 
			{
				tablaAlumnos = createAlumno.FindAllAlumnos();
					
			} catch (Exception) {
				
				tablaAlumnos = null;
			}
			
			return tablaAlumnos;
		}
		
		public Gestión_UTN.bo.Alumnobo FindAlumnoByDNI(int dni)
		{
			Gestión_UTN.bo.Alumnobo alumno = null;
			Gestión_UTN.Entities.Alumno alu = null;
			
			try 
			{
				if (0 != dni)
				{
					alu = createAlumno.FindAlumnoByDNI(dni);
					
					if (null != alu) 
					{
						string ciudad = createCiudad.FindCiudadByCodPostal(alu.Ciud_codPostal).Nombre;
						
						alumno = new Gestión_UTN.bo.Alumnobo(alu.Dni,alu.Nombre,alu.Apellido,alu.FechaNac,
						                                      alu.Direccion,ciudad,alu.Legajo);
						
					}
				}
					
			} catch (Exception) {
				
				alumno = null;
			}
			
			return alumno;
		}
		
		public Gestión_UTN.bo.Alumnobo FindAlumnoByLegajo(int legajo)
		{
			Gestión_UTN.bo.Alumnobo alumno = null;
			Gestión_UTN.Entities.Alumno alu = null;
			
			try 
			{
				if (0 != legajo)
				{
					alu = createAlumno.FindAlumnoByLegajo(legajo);
					
					if (null != alu) 
					{
						string ciudad = createCiudad.FindCiudadByCodPostal(alu.Ciud_codPostal).Nombre;
						
						alumno = new Gestión_UTN.bo.Alumnobo(alu.Dni,alu.Nombre,alu.Apellido,alu.FechaNac,
						                                      alu.Direccion,ciudad,alu.Legajo);
						
					}
				}
					
			} catch (Exception) {
				
				alumno = null;
			}
			
			return alumno;
		}
	}
}
